Топовый программист 1
FROM: Максим Сохацкий
TO: Patreon Subscribers
ТOC
Выпуск #1
Выпуск #2
Выпуск #3
Выпуск #4
Выпуск #X
Выпуск #5
Топовый программист
Если мои подписчики и просят о какой-то масштабной контрибуции, то это монографию на тему «как стать топовым программистом». Хотя такая формулировка инфантильна, она достаточно хорошо отображает суть вопрошаемого: детальное рассмотрение профессии программиста, стратегию изучения предмета исходя из личного опыта, разбавленное аутентичной философией.
Данный труд, который тяжело вместить в twitter формате, если и будет иметь продолжение, то тоже на страницах этого рабочего журнала в виде серии заметок, где же им еще быть!
Выражение уважения
Перед тем как начать повествование о профессии программиста прежде всего хочется выразить уважения предмету изучения и практики программирования, а именно формальным математическим вычислительным построениям, в которых возможно программирование в принципе. В последние годы стало понятно, что пространство этих построений настолько глубоко, что может поглотить не только все дискретные программы всех формальных грамматик, но и континуальную математику, в которой работа с пространством идет на другом, более фундаментальном уровне. Поэтому без лишнего преувеличения можно сказать, что само пространство рождает языковую группу языков, которые представляют собой первоначальную матрицу всех без исключения языков программирования.
Принцип глубокого уважения к предмету, который начинающий мастер должен реализовать является одним из секретных ключей восточной философии. Раз программирование рождается из пространства феноменологических построений ведущих к абстрактной классификации пространств и логик с ними связанных, то удержание в фокусе цели изучения пространства и программирования как практического человеческого процесса с этим связанного является главной задачей на пути изучения. Поэтому, без недооценивания и лишнего преувеличения можно сказать, что простирание или поклонение, как проявление уважение к самому пространству, как объекту изучения, выглядит для меня логичным. Я простираюсь перед пространством.
Проверка мотивации
Важной характеристикой, которая хотите верьте, а хотите нет, влияет на процесс изучения искусства программирования является чистота мотивации. Если рассмотреть граничный пример, то он будет выглядеть так: вашей мотивацией является увеличение своих навыков программиста для достижение материальных благ и увеличение конкурентоспособности на рынке труда. Полная чушь, такая мотивация влияет на критерии выбора объектов изучения и это может завести вас в ситуацию, когда вам 50 лет и вы пишете на Core Java для какого-то швейцарского банка. Явно люди, которые просили этот текст, не ожидают у меня чего-то подобного.
Свои иллюзии насчет легкости этого пути можете сразу отбросить. Этот путь по-самурайски сложен и на нем сходили с ума не только выпускники прикладной математики, немало людей перегорело на предприятиях от переизбытка и неконтролируемости информации. Поэтому 10 лет затвора с постоянным выделенным каналом в интернет на полном внешнем обеспечении — идеальный ресурс, который я рекомендовал бы выделить для успешной подготовки на мастера программирования. Откуда такой дикий расход с принятой методикой обучения придется раскрыть в следующих условных выпусках, так как должна оставаться интрига. Вообще 10 лет совершенно нормальный временной интервал для обучения профессии врача, почему программист должен обучаться в более сжатые сроки? Ведь количество языков, которыми оперирует топовый программист может доходить до тысяч, и это в практике. Это не просто латынь, эсперанто и романо-германская группа. Половину из этого времени можно проводить в реальных проектах, типа интернатуре, но языков и материала так много, что для топового программиста 10 лет можно выделить только на теорию.
Да, можно и в 50 лет устроится на галеру «цифровым сантехником», но это тоже никак не попадает под курс топового программиста, который должен покрывать от создания процессоров, ассемблеров, компиляторов, операционных систем, баз данных, сетевых протоколов, сервисов, шин и приложений до теоретико-типовых верификаторов математических моделей и теорем, сертифицированных компиляторов, систем доказательства теорем. Программирование, как и математика — удел молодых!
Без правильной мотивации предъявлять претензии о зря потраченных 10 годах безрезультатно на курс Сохацкого категорически запрещается! Как проверять чистоту мотивации и насколько точны могут быть рекомендации? Могу лишь сказать, что вы должны быть предельно честны с самим собой, ведь программирование — это сложный изнурительный ментальный процесс, а мышление — это высшая форма управления организмом, поэтому сбои в его работе могут привести к фатальным последствиям. Если вы кроме программирования ничего не умеет, то неплохо было бы разработать стратегию отхода: минимальная техника управления дыханием, легкий спорт без фанатизма, немного йоги, возможно активные виды спорта. Если вы считаете, что в целом вы психически устойчивый человек, то приготовьтесь к сюрпризам на пути к постижению загадок пространства без внутренней чистоты намерений.
Моей личной мантрой, с которой я изучаю программирование — это посвящение результатов своей работы людям и всем существам, не навредив никому без исключения. Вообще изучения программирования мало кому может помешать и может иметь форму глубокого затворничества святого монаха. Хотя есть и исключения, программисты в основном не жестокие существа и именно эта излишняя энергия агрессии, развернутая в позитивном направлении интроспекции, является двигателем аутического постижения тайн профессии программиста!
Вообще если мотивация алмазной колесницы привести всех существ к полному просветлению вам кажется слишком эзотерической, то хотя бы старое доброе правило инженеров прошлого «не навреди, а лучше помоги людям», является тем минимумом, который необходимо проверять перед каждой сессией программирования. Представьте себе, что вы с рвением льва кладете на алтарь просветления 10 лет обучения программированию из сундука своей жизни для того, чтобы принести пользу людям. Без подобной мотивации вам попросту не будет откуда брать энергию для ежедневных упражнений в программировании и мышлении.
Всеведение как источник вдохновения
Главная черта характера, которая необходима в человеке, чтобы стать топовым программистом – это предрасположенность к изучению и исследованию феноменов, их анализу, синтезу и абстракции. Это желание разобрать и исследовать игрушку должно так глубоко находиться в сознании, что кажется, будто ребенок уже рождается с этим даром быстро разбираться в феноменах при должной интенсивной нагрузке на нейросеточку. Другими словами – это хакерство, если вы любите исследовать системы, разбираться в программном коде, понимаете, как работают процессоры, знаете, как работает логика и математика, то вы уже можете стать топовым программистом. Желание построить максимально точную модель феномена должно быть гипертрофированным, оно должно быть незакрытым гештальтом, который не дает вам спать по ночам пока вы его не закроете. Именно эта фанатичная одержимость конвертируется в то, что будет дровами в нашем костре просветления на пути к всеведению в мире программирования. Откуда взялось всеведение? Это вторая сторона медали главного источника хакерского вдохновения. Если при локальном рассмотрении феноменов главной мыслью должно быть построить максимально точную модель феномена, то при фокусировке в бесконечность к краям горизонта, это желание проявляется в виде максимально быстрого познания вообще всех феноменов и их универсальные принципы устройства. Такой мета-хакерский трансцедентальный полу-фрический майндсет необходим для понимания того, насколько абстрактными и широкими могут быть вызовы на пути познания глубинных языков, на которых написана наша вселенная.
Так, как языки программирования используются во всех сферах человеческой деятельности, то топовый программист совершенно точно должен разбираться во всех доменных моделях, всех типах и всех математиках, которые возникают в разных языках программирования. Обычно, университетские 5 лет я бы рекомендовал провести как раз в охвате всех математик и всех видов языков программирования, перед тем как погрузиться в фундаментальную математику и системное программирование. Вообще хорошее современное образование уровня PhD автоматически подразумевает свободное владение языковым и математическим обеспечением в исследовании вселенной, так что ничего такого, что не требуют топовые университеты, курс топового программиста в этой части всеведения здесь не требует. Требуется полная автономность на уровне полетел в космос и восстановил все знания и навыки при необходимости в кратчайшие сроки путем легкого воспоминания.
Каждый раз поглощая какой-то пласт информации вы высвобождаете огромное пространство свободы, которое либо заполняется новыми неисследованными пластами, либо освобождается абсолютно, если вы уже все пласты поглотили. Но когда вы полностью исчерпаете всю карму, тогда буддахуд придет автоматически, так что это уже программа максимум. Ведь после того как вы изучили какой-то предмет и дали несколько мастер классов по нему, вы просто листаете все книги по нему, по которым учились и это все для вас даже не букварь, потому что букварь вы уже сами написали, это для вас просто шум деревьев в лесу. Вы полностью исчерпали этот предмет, стали мастером в нем, вы видите уже все сечения глобулярных фазовых пространств, имеете на руках несколько моделей и прототипов. Это состояние всеведения. Желание этого состояния – необходимый компонент топового программиста.
Если вы построили какое-то пространство феноменов наполнив их смыслом и остаетесь там в комфортной среде ограниченного знания, вы уже теряете топовую мотивацию как компонент всеведения. Не устремив свое мышление в бесконечность вы не сможете увидеть весь ландшафт и правильно расставить приоритеты в поглощении научных дисциплин, чтобы совершить «прыжки Тигра» между этими приоритетными реперными точками.
Только исследователи, которые преисполнены врождённого желания строить новые теории и языковые пространства наделены семенем творчества, которое ведет к топовой реализации. Междисциплинарный подход может появиться только в условиях широкого профиля. Никто никогда не ставил задачу составить курс для подготовки людей, которых можно было бы назвать культовыми хакерами, поэтому и требования к подготовке должны быть запредельными. Только олимпийское желание всеведения может реально приблизить вас к нему.